package com.poolsoft.kasa;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.poolsoft.kasa.R;
import com.poolsoft.kasa.R.id;
import com.poolsoft.kasa.R.layout;

public class MyKisiActivity extends Activity {
	private KisiVeritabani kisiVeritabani;
	private Button save_button;
	private Button reset_button;
	private EditText ad_text;
	private EditText soyad_text;
	private EditText yas_edit;
	private ContentValues conValues;
	private SQLiteDatabase dbObject;
	private TextView text_count;
	private Cursor cursorRecordResult;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		//super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		save_button = (Button) findViewById(R.id.button1);
		reset_button = (Button) findViewById(R.id.button2);
		ad_text = (EditText) findViewById(R.id.editText1);
		soyad_text = (EditText) findViewById(R.id.editText2);
		yas_edit = (EditText) findViewById(R.id.editText3);
		text_count = (TextView) findViewById(R.id.textView4);
		// KisiVeritabani sinifindan setbir obje create ediyoryoruz.
		kisiVeritabani = new KisiVeritabani(getApplicationContext(),
				KisiVeritabani.DATABASE_NAME, null,
				KisiVeritabani.DATABASE_VERSION);
		// SQLiteDatabase yazilabilir oldugunu beliritiyoruz:
		// getWritableDatabase metodu ile.
		dbObject = kisiVeritabani.getWritableDatabase();
		// (sutun ismi, value) seklinde set olusturmak icin create ettik
		conValues = new ContentValues();
		// Button click edildiginde girilen veririleri save ettik.
		save_button.setOnClickListener(new Button.OnClickListener() {

			@Override
			public void onClick(View v) {
				saveRecord();
				resetValues();
				// Textviewde toplam kayit sayisini tutuyoruz.
				getRecordCount();

			}
		});
		// reset click edildiinde textviewlerin icierigi sifirlaniyor
		reset_button.setOnClickListener(new Button.OnClickListener() {

			@Override
			public void onClick(View v) {

				resetValues();

			}
		});

	}

	protected void getRecordCount() {
		// SQLiteDatabase objesine bu sefer kisiVeritabani yazilabilir seklinde
		// erisime aciyoruz.
		// kisiVeritabani.getReadableDatabase()
		dbObject = kisiVeritabani.getReadableDatabase();
		// Sadece kisi adlarini Cursor'a atiyorum. selectRecords.getCount() ile
		// kayit sayisini textviewe yaziyorum.
		String[] columns = { KisiVeritabani.KISI_ADI };
		// Cursor Java'daki ResultSet gibi select edilen degerleri tutuyor.
		// selectRecords. ctrl+space basarsaniz kullanabileceginiz moveToFirst,
		// moveToLast,
		// moveToNext... metodlarindan lazimn olani kullanabilirisniz.
		// dbObject.query(distinct, table, columns, selection, selectionArgs,
		// groupBy, having, orderBy, limit) seklinde sorgu yapabilirsiniz
		cursorRecordResult = dbObject.query(KisiVeritabani.TABLE_NAME,
				columns, null, null, null, null, null, null);
		text_count.setText(String.valueOf(cursorRecordResult.getCount()));

	}

	protected void resetValues() {
		ad_text.setText("");
		soyad_text.setText("");
		yas_edit.setText("");

	}

	protected void saveRecord() {
		// yas icin int kontrolu yapilmamis
		// conValues ye ad, soyad,yas sutunlarina kullanicidan alinan degerler
		// ataniyor.
		conValues.put(KisiVeritabani.KISI_ADI, ad_text.getText().toString());
		conValues.put(KisiVeritabani.KISI_SOYAD, soyad_text.getText()
				.toString());
		conValues.put(KisiVeritabani.KISI_DTARIHI, yas_edit.getText().toString());
		try {
			// dbObject.insert(table, nullColumnHack, values) seklinde bir
			// metod.
			// belirtilen tabloya ContentValues setini ekliyor.
			dbObject.insert(KisiVeritabani.TABLE_NAME, null, conValues);
			Log.d("DDMS'ye", "kayit basarili degerini yaz.");
		} catch (SQLiteException e) {
			Log.d("eHata", e.getLocalizedMessage());
		}

	}
	
	protected void bul() {
		// SQLiteDatabase objesine bu sefer kisiVeritabani yazilabilir seklinde
		// erisime aciyoruz.
		// kisiVeritabani.getReadableDatabase()
		dbObject = kisiVeritabani.getReadableDatabase();
		// Sadece kisi adlarini Cursor'a atiyorum. selectRecords.getCount() ile
		// kayit sayisini textviewe yaziyorum.
		String[] columns = { KisiVeritabani.KISI_ADI };
		// Cursor Java'daki ResultSet gibi select edilen degerleri tutuyor.
		// selectRecords. ctrl+space basarsaniz kullanabileceginiz moveToFirst,
		// moveToLast,
		// moveToNext... metodlarindan lazimn olani kullanabilirisniz.
		// dbObject.query(distinct, table, columns, selection, selectionArgs,
		// groupBy, having, orderBy, limit) seklinde sorgu yapabilirsiniz
		cursorRecordResult = dbObject.query(KisiVeritabani.TABLE_NAME,
				columns, null, null, null, null, null, null);
		text_count.setText(String.valueOf(cursorRecordResult.getCount()));

	}
}